package muhnes.sizoo.modelo;
// Generated 09-23-2012 12:38:06 AM by Hibernate Tools 3.2.1.GA


import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import muhnes.sizoo.dal.FabricaDAO;
import muhnes.sizoo.seguridad.IAuditable;

public class Zona  implements java.io.Serializable, IAuditable {

    
     private int codigozona;
     private Municipio municipio;
    
     private String localidad;

     private String ubicacion;
     private Set<Nacional> nacionals = new HashSet<Nacional>(0);
     private Set<Areaprotegida> areaprotegidas = new HashSet<Areaprotegida>(0);
     
    public Zona() {
    }

	
    public Zona(int codigozona, Municipio municipio) {
        this.codigozona = codigozona;
        this.municipio = municipio;
        
    }
    
    public Zona(int codigozona, Municipio municipio, Set<Nacional> nacionals, Set<Areaprotegida> areaprotegidas ) {
       this.codigozona = codigozona;
       this.municipio = municipio;
       this.nacionals = nacionals;
       this.areaprotegidas = areaprotegidas;
    }
   
    public Zona(Zona zona ) {
       this.codigozona = zona.getCodigozona();
       this.municipio = zona.getMunicipio();
       this.nacionals = zona.getNacionals();
       this.areaprotegidas = zona.getAreaprotegidas();
    }
    
    public int getCodigozona() {
        return this.codigozona;
    }
    
    public void setCodigozona(int codigozona) {
        this.codigozona = codigozona;
    }
    public Municipio getMunicipio() {
        return this.municipio;
    }
    
    public void setMunicipio(Municipio municipio) {
        this.municipio = municipio;
    }
  
    
       
    public String getLocalidad () {
        return localidad;
    }

    public void setLocalidad (String localidad) {
        this.localidad = localidad;
    }

    public Set<Nacional> getNacionals() {
        return this.nacionals;
    }
    
    public void setNacionals(Set<Nacional> nacionals) {
        this.nacionals = nacionals;
    }
    
    public Set<Areaprotegida> getAreaprotegidas() {
        return areaprotegidas;
    }

    public void setAreaprotegidas(Set<Areaprotegida> areaprotegidas) {
        this.areaprotegidas = areaprotegidas;
    }
    
    public String getUbicacion() {
        
        if( StringUtils.isEmpty( ubicacion )  ) {
            ubicacion = municipio.getDepartamento().getNombre();
            ubicacion += ", " + municipio.getNombre();
            ubicacion += ", " + localidad;
        }
        
        return ubicacion;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Zona other = (Zona) obj;
        if (this.codigozona != other.codigozona) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 73 * hash + this.codigozona;
        return hash;
    }

    @Override
    public String toString() {
        return "Zona{" + "codigozona=" + codigozona + ", municipio=" + municipio + ", nacionals=" + nacionals + '}';
    }

    @Override
    public String getNombreAuditable() {
        return "zoologia.zona";
    }

  
    
    
}//  fin de la clase


